package org.wwb.antbox.center.web.controller.sys.system;

import org.ant.commons.models.model.BaseIdModel;
import org.ant.commons.models.result.BaseEditResult;
import org.ant.commons.models.result.BaseListResult;
import org.ant.commons.models.result.BasePageResult;
import org.ant.commons.models.result.BaseResult;
import org.springframework.web.bind.annotation.*;
import org.wwb.antbox.center.web.Router;
import org.wwb.antbox.user.iservice.ServiceUserTool;
import org.wwb.antbox.user.model.system.model.SysSystemAddModel;
import org.wwb.antbox.user.model.system.model.SysSystemDelModel;
import org.wwb.antbox.user.model.system.model.SysSystemEditModel;
import org.wwb.antbox.user.model.system.model.SysSystemPageModel;
import org.wwb.antbox.user.model.system.view.SysSystemPageView;
import javax.validation.Valid;

/**
 * @Author Bond
 * @Date: 2019/9/22 12:39
 * @Description: 系统控制器
 */
@RestController
public class SysSystemController {
    /**
     * 获取系统分页列表
     * @param sysSystemPageModel
     * @return BasePageResult<SysSystemPageView>
     */
    @PostMapping(value = Router.SysSystem.GET_SYS_SYSTEM_PAGE)
    public BasePageResult<SysSystemPageView> getSysSystemPage(@RequestBody @Valid SysSystemPageModel sysSystemPageModel){
        return ServiceUserTool.sysSystemService().getSysSystemPage(sysSystemPageModel);
    }

    /**
     * 获取系统列表
     * @return BaseListResult
     */
    @GetMapping(value = Router.SysSystem.GET_SYS_SYSTEM_LIST)
    public BaseListResult getSysSystemList(){
        return ServiceUserTool.sysSystemService().getSysSystemList();
    }

    /**
     * 添加系统
     * @param sysSystemAddModel
     * @return BasePageResult<Integer>
     */
    @PostMapping(value = Router.SysSystem.SAVE_SYS_SYSTEM)
    public BaseResult<Integer> saveSysSystem(@RequestBody @Valid SysSystemAddModel sysSystemAddModel){
        return ServiceUserTool.sysSystemService().saveSysSystem(sysSystemAddModel);
    }

    /**
     * 删除系统
     * @param sysSystemDelModel
     * @return BaseResult<Integer>
     */
    @PostMapping(value = Router.SysSystem.DEL_SYS_SYSTEM)
    public BaseResult<Integer> delSysSystem(@RequestBody @Valid SysSystemDelModel sysSystemDelModel){
        return ServiceUserTool.sysSystemService().delSysSystem(sysSystemDelModel);
    }

    /**
     * 跳转修改系统
     * @param id id
     * @return BaseEditResult
     */
    @GetMapping(value = Router.SysSystem.DO_EDIT_SYS_SYSTEM)
    public BaseEditResult doEditSysSystem(@RequestParam("id") Integer id){
        return ServiceUserTool.sysSystemService().doEditSysSystem(new BaseIdModel(id));
    }

    /**
     * 修改系统
     * @param sysSystemEditModel
     * @return BaseResult<Integer>
     */
    @PostMapping(value = Router.SysSystem.EDIT_SYS_SYSTEM)
    public BaseResult<Integer> editSysSystem(@RequestBody @Valid SysSystemEditModel sysSystemEditModel){
        return ServiceUserTool.sysSystemService().editSysSystem(sysSystemEditModel);
    }
}
